package models

import (
	_ "github.com/go-sql-driver/mysql"
)

/**
 * mysql数据库表模板
 */

// Group 群组表
type Group struct {
	Id         int64  `gorm:"column:id;primary_key;auto_increment" json:"id"`
	GroupId    int64  `gorm:"column:group_id" json:"groupId"`
	ChatNum    int64  `gorm:"column:chat_num" json:"chatNum"`
	GroupName  string `gorm:"column:group_name" json:"groupName"`
	GroupText  string `gorm:"column:group_text" json:"groupText"`
	GroupImg   string `gorm:"column:group_img" json:"groupImg"`
	CreateTime string `gorm:"column:create_time" json:"createTime"`
	UpdateTime string `gorm:"column:update_time" json:"updateTime"`
	Status     int64  `gorm:"column:status;" json:"status"`

	LookNum int64 `gorm:"column:look_num"` //user_group表字段
}

func (Group) TableName() string {
	return "im_group"
}

// Message 群聊内部消息模板
type Message struct {
	Id          int64  `gorm:"column:id;primary_key;auto_increment" json:"id"`
	GroupId     int64  `gorm:"column:group_id" json:"groupId"`
	UserId      int64  `gorm:"column:user_id" json:"userId"`
	MessageData string `gorm:"column:message_data" json:"messageData"`
	CreateTime  string `gorm:"column:create_time" json:"createTime"`
	UpdateTime  string `gorm:"column:update_time" json:"updateTime"`
	Status      int64  `gorm:"column:status;" json:"status"`
}

func (Message) TableName() string {
	return "im_message"
}

// UserGroup 用户与群组的关联表
type UserGroup struct {
	Id         int64  `gorm:"column:id;primary_key;auto_increment" json:"id"`
	UserId     int64  `gorm:"column:user_id" json:"userId"`
	GroupId    int64  `gorm:"column:group_id" json:"groupId"`
	LookNum    int64  `gorm:"column:look_num" json:"lookNum"`
	CreateTime string `gorm:"column:create_time" json:"createTime"`
	UpdateTime string `gorm:"column:update_time" json:"updateTime"`
	Status     int64  `gorm:"column:status;" json:"status"`
}

func (UserGroup) TableName() string {
	return "im_user_group"
}

// User 用户表
type User struct {
	Id         int64  `gorm:"column:id;primary_key;auto_increment" json:"id"`
	Phone      string `gorm:"column:phone" json:"phone"`
	Password   string `gorm:"column:password" json:"password"`
	CreateTime string `gorm:"column:create_time" json:"createTime"`
	UpdateTime string `gorm:"column:update_time" json:"updateTime"`
	Status     int64  `gorm:"column:status;" json:"status"`
	Nickname   string `gorm:"column:nickname" json:"nickname"`
	HeadImg    string `gorm:"column:head_img" json:"headImg"`
}

func (User) TableName() string {
	return "im_user"
}
